const mockData = [
  { channelOrderNo: '232423235235' },
  { channelOrderNo: '232423235232' },
  { channelOrderNo: '232423235233' },
  { channelOrderNo: '232423235234' },
  { channelOrderNo: '232423235235' },
  { channelOrderNo: '232423235236' },
]
const mockTotal = 60;
Page({
  data: {
    show: false,
    page: 1, // 当前页数
    orders: [],
    uid: ''
  },
  onLoad(option) {
    this.setData({
      uid: option.uid,
      orders: [],
    }, () => {
      this.getOrderUid();
      // this.mySchedulde();
    })
    // this.getOrderUid(uid);
  },
  // 获取 UID
  getUid: function(authCode) {
    console.log('正在请求 UID...');
    my.request({
      url: 'https://manager.xiangfuq.com/api/system/aliUid', // 后台 API 地址
      method: 'POST',
      data: {
        authCode: authCode // 将授权码发送到后台
      },
      success: (res) => {
        console.log('请求 UID 成功:', res);
        if (res.data) {
          console.log('UID 获取成功:', res.data);
          // 获取到 UID 后，调用获取订单数据接口
          this.getOrderUid(res.data.data);
        } else {
          console.error('UID 获取失败，返回数据不完整:', res);
        }
      },
      fail: (err) => {
        console.error('请求 UID 失败:', JSON.stringify(err));
      }
    });
  },
  // 获取订单数据
  async getOrderUid(page = 1) {
    console.log('正在请求订单数据...', this.data);
    if (!this.data.uid) {
      my.alert({
        title: '提示',
        content: '获取用户信息失败，请返回首页',
        buttonText: '确定'
      });
      return; // 终止后续请求的执行，避免无效请求发送到后台
    }
    let list = this.data.orders;
    my.request({
      url: 'https://manager.xiangfuq.com/api/system/orderUid', // 后台订单接口
      method: 'POST',
      data: {
        userId: this.data.uid, // 传递 UID
        pageSize: 10,
        pageNumber: page
      },
      success: (res) => {
        console.log('订单数据请求成功:', res);
        if (res.data) {
          console.log('订单数据:', res.data);
          for (let i = 0; i < res.data.data.length; i++) {
            list.push({ ...res.data.data[i], status: 1 });
          }
          console.log(list);
          this.setData({
            orders: list, // 更新页面的数据状态
            page,
            show: false
          });
        } else {
          console.error('订单数据获取失败', res);
        }
      },
      fail: (err) => {
        console.error('请求订单数据失败:', err);
      }
    });
  },
  // 处理退款按钮点击
  handleRefund: function(event) {
    const orderId = event.currentTarget.dataset.orderId;  // 获取订单ID
    my.request({
      url: 'https://manager.xiangfuq.com/api/system/orderReviewRefund',
      method: 'POST',
      data: {
        payOrderId: orderId // 传递 UID
      },
      success: function (res) {
        console.log('退款申请提交成功', res);
        // 这里可以根据后端返回的结果进行相应的页面提示、逻辑处理，比如显示申请成功提示框等
        // 使用支付宝小程序原生的模态框 API 显示成功提示
        var msg
        if (res.data.msg == "SUCCESS"){
          msg = "申请成功,24小时内退款,请等待,如有疑问请联系客服"
        }else {
          msg = res.data.msg
        }
        my.alert({
          title: '提示',
          content: msg,
          buttonText: '确定'
        });

      },
      fail: function (err) {
        console.log('退款申请提交失败', err);
        // 显示错误提示给用户，比如提示网络错误等
      }
    });
  },
  //  触底事件
  async scrollMytrip() {
    console.log('事件');
    try {
      const { page, orders } = this.data;
      // 判断是否还有数据需要加载
      if (orders.length < mockTotal) {
        this.setData({ show: true });
        const newPage = page + 1;
        this.getOrderUid(newPage);
      }
    } catch (e) {
      this.setData({ show: false });
      console.log('scrollMytrip执行异常:', e);
    }
  },
  //  数据加载
  async mySchedulde(page = 1) {
    console.log(this.data.uid);
    try {
      let list = this.data.orders;
      // 模拟请求拿到数据进行更新data
      setTimeout(() => {
        let data = mockData;
        console.log(data);
        for (let i = 0; i < data.length; i++) {
          let newObj = { ...data[i], remarksa: `我是第${page}页` };
          list.push(newObj);
        }
        console.log(list);
        this.setData({
          orders: list,
          page,
          show: false
        });
      }, 800);
    } catch (e) {
      console.log('mySchedulde执行异常:', e);
    }
  }
});
